/*********************************************************************************
//                      Venus Game Engine
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Venus Game Technologies and may not 
// be copied or disclosed except in accordance with the terms of that 
// agreement.
//      Copyright(c) 2003-2014 Venus.PK, All Right Reversed.
//	KRP_ShadowGen.h
//	Created: 2014-3-17   10:19
//	Define the shadow gen pass 
**********************************************************************************/
#pragma once
#ifndef __KRP_SHADOWGEN_H__
#define __KRP_SHADOWGEN_H__
#include "KRenderPrivate.h"
#include "VShader.h"
//
//class KRP_ShadowGen 
//{
//public:
//	BOOL Init();
//	void Shutdown();
//	inline void Clear()
//	{
//
//	}
//	void Render(const VPODArray<KSceneSurface*>& m_RenderSurfaces);
//	inline void EnableNoise(BOOL Enable) { m_EnableNoise = Enable; }
//private:
//	void ProcessSurfaces(const VPODArray<KSceneSurface*>& m_RenderSurfaces);
//	
//	static inline bool SortSurface(KSceneSurface* S1, KSceneSurface* S2)
//	{
//		// sort by shader
//		if (S1->Shader != S2->Shader)			{	return S1->Shader < S2->Shader;	}
//		// sort by material
//		if (S1->Material != S2->Material)		{	return S1->Material < S2->Material;	}
//		// sort by mesh type
//		if (S1->MeshType() != S2->MeshType())		{	return S1->MeshType() < S2->MeshType();	}
//		
//		// sort by resource ????? 
//
//		return S1 < S2;
//	}
//	static inline bool SortSurfaceTranparent()
//	{
//		return true;
//	}
//	void RenderSurfaceList(const VPODArray<KSceneSurface*>& Surfaces);
//	VRTexturePtr m_NoiseTexture;
//	BOOL m_EnableNoise;
//	typedef VPODArray<KSceneSurface*> SceneSurfaceList;
//	SceneSurfaceList m_OpactiyList;
//	SceneSurfaceList m_AlphaBlendList;
//	SceneSurfaceList m_AlphaTestList;
//};


#endif 